//
// Created by jwhww on 25-9-24.
//

#include "AllHeadFile.h"

//限制区间函数，爱来自曹榆瀚
//------------------------------------------------------------------------------------------------------
// 函数简介		  钳位函数大全
// 使用示例         clip_int(input, 1, 2);
// 参数介绍         x                       被钳位值
// 参数介绍         low                     钳位下限
// 参数介绍         up                      钳位上限
// 返回参数         钳位后的值
// 备注信息         请根据自己对应的数据结构选用
//------------------------------------------------------------------------------------------------------
int clip_int(const int x, const int low, const int up) {
    return x > up ? up : x < low ? low : x;
}

long clip_long(const long x, const long low, const long up) {
    return x > up ? up : x < low ? low : x;
}

float clip_float(const float x, const float low, const float up) {
    return x > up ? up : x < low ? low : x;
}

double clip_double(const double x, const double low, const double up) {
    return x > up ? up : x < low ? low : x;
}

uint8_t clip_uint8(const uint8_t x, const uint8_t low, const uint8_t up) {
    return x > up ? up : x < low ? low : x;
}

uint16_t clip_uint16(const uint16_t x, const uint16_t low, const uint16_t up) {
    return x > up ? up : x < low ? low : x;
}

uint32_t clip_uint32(const uint32_t x, const uint32_t low, const uint32_t up) {
    return x > up ? up : x < low ? low : x;
}

uint64_t clip_uint64(const uint64_t x, const uint64_t low, const uint64_t up) {
    return x > up ? up : x < low ? low : x;
}

int8_t clip_int8(const int8_t x, const int8_t low, const int8_t up) {
    return x > up ? up : x < low ? low : x;
}

int16_t clip_int16(const int16_t x, const int16_t low, const int16_t up) {
    return x > up ? up : x < low ? low : x;
}

int32_t clip_int32(const int32_t x, const int32_t low, const int32_t up) {
    return x > up ? up : x < low ? low : x;
}

int64_t clip_int64(const int64_t x, const int64_t low, const int64_t up) {
    return x > up ? up : x < low ? low : x;
}